package com.dayuanit.dy17.mix.aop.aspect;

import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

/**
 * 开始结束 切面
 *
 * 切面类里面 要定义代理的逻辑
 *
 * 通过标签 来定义代理顺序 就是通过通知来觉得代理的顺序
 *
 */
@Aspect
@Component
@Order(2)
public class ServiceBeginAspect {

    public ServiceBeginAspect() {
        System.out.println("ServiceBeginAspect()");
    }

    /**
     * 定义哪些类 哪些方法需要做增强 需要被代理
     */
    @Pointcut("execution(* com.dayuanit.dy17.mix.aop.service.impl.*.*(..))")
    public void pointCut() {

    }

    @Before("pointCut()")
    public void doBefore() {
        System.out.println("begin...");
    }

    @After("pointCut()")
    public void doAfter() {
        System.out.println("end...");
    }

}
